// 2. 构建一个 Koa 中间件，实现以下功能：

// - 在请求到达最终处理逻辑之前，检查请求头是否包含指定的 `X-Auth-Token`。
// - 如果请求头中存在有效的 `X-Auth-Token`，允许请求继续。
// - 如果不存在或无效，返回状态码 `401 Unauthorized` 和错误信息。

// 要求：

// 1. 模拟一个简单的 `X-Auth-Token` 有效性判断，假设有效的 token 为 `valid-token-123`。
// 2. 如果验证失败，返回的 JSON 格式为：
// {
//     "error": "Unauthorized",
//     "message": "Invalid or missing token"
// }

// 导入依赖包
import koa from "koa";
import Router from "koa-router";

// 创建 koa 实例
const app = new koa();
// 创建 router 实例
const router = new Router();

// 端口号
const port = 8080;

// 监听端口
app.listen(port);

// 定义 有效的 请求头
const token = "valid-token-123";
// 处理请求（使用中间件）
app.use(async (ctx, next) => {
  // 检查请求头是否有效
  if (token === ctx.headers["x-auth-token"]) {
    // 有效
    ctx.body = "有效 token";
  } else {
    // 无效
    // 返回 状态码
    ctx.response.status = 401;
    // 返回 错误提示 JSON
    ctx.body = {
      error: "Unauthorized",
      message: "Invalid or missing token",
    };
  }
});

// 输出当前监听的地址
console.log(`当前监听的地址：http://localhost:${port}`);
